Recently, companies have begun to explore the possibilities of using grid computing networks (grids) to increase the companies' productivity. A grid comprises a plurality of computers that are networked together. Large or complex computations can be broken up into a plurality of smaller, more manageable jobs (jobs) by the grid. The jobs are then sent out to the computers within the grid for parallel processing. Each job has certain requirements to be executed, such as processor speed, memory, software, execution time, percent utilization, and so forth. The jobs can be routed to the resources depending on their requirements. As the individual computers complete their jobs, the grid reassembles the jobs into the completed result for the computation. The result is that the large or complex computations are processed in significantly less time than is possible on a single computer.
One of the important components of a grid is the scheduler. The scheduler is an algorithm that distributes the individual jobs for processing throughout the grid. The prior art grid schedulers acquire information about the current state of the resource properties on the gird. The information is used to create a real-time picture of the state of the resource properties on the grid. The prior art schedulers examine the real-time information to determine which resource can best execute the job. The prior art schedulers then distribute the job to the resource that can best execute the job. The process is repeated for every job in the grid.
Several problems are associated with the prior art scheduling method. One problem is that the collection of real-time data for the resources consumes a large amount of grid resources. The mechanism by which the scheduler collects and updates the real-time resource data consumes a large amount of network bandwidth between the scheduler and the resources. The mechanism utilizes processor time for the resources and the scheduler computer. Similarly, the mechanism also utilizes large amounts of memory for the resources and the scheduler computer. A scheduler that could reduce or eliminate the data gathering mechanism for the resources could apply the processing time and memory to more beneficial activities. Therefore, a need exists in the art for a scheduler that does not have to know the real-time state of the grid resources in order to distribute jobs to the resources.
Another problem associated with the prior art schedulers is that they are centralized. The prior art schedulers represent a bottleneck in the grid because all of the jobs on the grid must pass through a single computer. The idea behind grid computing is to eliminate the bottlenecks in the computer network by distributing the workload to a plurality of different computers. Decentralization allows the jobs to be completed more quickly than centralized networks. Decentralization is also advantageous because the productivity of the gird is not significantly affected when one of the grid computers goes offline. If the computer containing the prior art scheduler were to go offline, then the grid would have to cease operations until the scheduler came back online. With a decentralized scheduler, the grid would continue to operate when one computer running the scheduler goes offline because the scheduler would be on a plurality of computers. Therefore, a need exits in the art for a scheduler that is located on a plurality of computers on the grid.